package org.streets.workflow.engine;




/**
 * token的生命周期开始与一个synchronizer（包括startnode 和 endnode)，结束于另一个synchronizer
 * 
 */
public interface IToken {

	/**
	 * 前驱activityid的分隔符为"&"
	 */
	public static final String FROM_ACTIVITY_ID_SEPARATOR = "&";
	
	public static final String FROM_START_NODE = "FROM_START_NODE";

    /**
     * @return
     */
    public String getId();
	/**
	 * @return
	 */
	public String getNodeId();
	/**
	 * 
	 * @param nodeId
	 */
	public void setNodeId(String nodeId);
	/**
	 * @return
	 */
	public Integer getValue();
	/**
	 * 
	 */
	public void setValue(Integer value);
	/**
	 * 通过alive标志来判断nodeinstance是否要fire
	 * @return
	 */
	public Boolean isAlive();
	/**
	 * 
	 * @param alive
	 */
	public void setAlive(Boolean alive);
	/**
	 * @return
	 */
	public Integer getStepNumber();

	/**
	 * @param i
	 */
	public void setStepNumber(Integer i);

	/**
	 * 获得前驱Activity的Id,如果有多个，则用"&"分割
	 * 
	 * @return
	 */
	public String getFromActivityId();

	/**
	 * @param s
	 */
	public void setFromActivityId(String s);

    /**
     * @return
     */
    public IProcessInstance getProcess();

    /**
     * @param process
     */
    public void setProcess(IProcessInstance process);

}
